/**
 *
 */
package com.csun.cmny.provider.utils;

import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * @author yangmin
 * 2017年9月14日
 * 参数校验工具类
 */
public class ValidateUtil {

    /**
     * 获取参数校验错误信息
     *
     * @param br
     * @param param
     * @return
     */
    public static Map<String, String> getErrorMap(BindingResult br, String[] param) {
        /* 存放参数校验错误详情 */
        Map<String, String> errorMap = new HashMap<String, String>();
        /* 参数校验错误的个数 */
        int errorCount = br.getErrorCount();
        /* 判断参数校验是否有错误 */
        if (errorCount > 0) {
            for (int i = 0; i < param.length; i++) {
                FieldError error = br.getFieldError(param[i]);
                if (error != null) {
                    errorMap.put(param[i], error.getDefaultMessage());
                }
            }
        }
        return errorMap;
    }

    /**
     * 删除map里的空值
     *
     * @param map
     */
    public static void removeNullValue(Map<String, String> map) {

        if (map != null && map.size() != 0) {
            Iterator it = map.keySet().iterator();   //取出所有的key并遍历
            while (it.hasNext()) {
                String key = (String) it.next();     //取出key
                if (map.get(key) != null && map.get(key).length() != 0) {
                    it.remove();
                }
            }

        }
    }

    public static String exceptionCover(String msg) {

        String result = "数据库操作抛出异常,请联系管理员~";

        if (msg.indexOf("MysqlDataTruncation") != -1) {
            return "数据长度超过限制";
        } else if (msg.indexOf("MySQLIntegrityConstraintViolationException") != -1) {
            return "存在相同数据";
        }

        return result;
    }

}
